#ifndef _BSP_LED_CTRL_H_
#define _BSP_SPECIAL_H_

#include <stdint.h>
#include "msp_gpio.h"

#define LED_FLASH_SPEED_SLOW        500         //LED慢闪时间参数
#define LED_FLASH_SPEED_FAST        100         //LED快闪时间参数
#define LED_FLASH_SPEED_DOUBLE      100         //LED双闪时间参数
#define BATTERY_DIV_RATIO           0.17603     //电源电压测量电阻分压比

__STATIC_INLINE void Yellow_Led_Turn_On(void)
{
    YELLOW_LED_ON();
}
__STATIC_INLINE void Yellow_Led_Turn_Off(void)
{
    YELLOW_LED_OFF();
}
__STATIC_INLINE void Green_Led_Turn_On(void)
{
    GREEN_LED_ON();
}
__STATIC_INLINE void Green_Led_Turn_Off(void)
{
    GREEN_LED_OFF();
}

// 控制灯枚举
typedef enum led_list_enum
{
    led_yellow,                             // 黄灯
    led_green                               // 绿灯
}led_list_t;

//系统工作状态灯工作模式枚举
typedef enum led_flash_mode_enum
{
    none_flash,                             // 常亮无闪烁
                                            // 绿灯-模块正在初始化
                                            // ？灯-4G模块正在初始化
    slow_flash,     //慢速闪烁
                                            // 绿灯-离线模式-
                                            // ？灯-4G模块未响应
    fast_flash,     //快速闪烁
                                            // 绿灯-在线模式-光控
                                            // ？灯-4G模块已连接
    double_flash,   //快速双闪
                                            // 绿灯-在线模式-时控
                                            // ？灯-
    treble_flash    //
}led_flash_mode_t;

void Bsp_Led_System_Set(led_list_t led_num, led_flash_mode_t mode);
void Bsp_Led_System_Fsm(uint8_t ms);
// float Bsp_Battery_Get_Voltage(void);

#endif
